@echo off
chcp 65001 >nul

:: Docker网络问题解决方案脚本 - Windows版本
echo ========================================
echo    Docker网络问题解决方案
echo ========================================

:: 检查Docker服务状态
echo [信息] 检查Docker服务状态...
docker info >nul 2>&1
if %errorlevel% neq 0 (
    echo [错误] Docker服务未运行，请启动Docker Desktop
    pause
    exit /b 1
)

:: 检查网络连接
echo [信息] 检查网络连接...
ping -n 1 registry-1.docker.io >nul 2>&1
if %errorlevel% neq 0 (
    echo [警告] 无法连接到Docker Hub，使用国内镜像源...
    
    :: 创建Docker配置目录
    if not exist "%USERPROFILE%\.docker" mkdir "%USERPROFILE%\.docker"
    
    :: 配置国内镜像源
    echo [信息] 配置国内镜像源...
    (
        echo {
        echo   "registry-mirrors": [
        echo     "https://registry.cn-hangzhou.aliyuncs.com",
        echo     "https://docker.mirrors.ustc.edu.cn",
        echo     "https://hub-mirror.c.163.com",
        echo     "https://mirror.ccs.tencentyun.com"
        echo   ],
        echo   "max-concurrent-downloads": 10,
        echo   "max-concurrent-uploads": 5
        echo }
    ) > "%USERPROFILE%\.docker\daemon.json"
    
    echo [提示] 已创建Docker配置文件：%USERPROFILE%\.docker\daemon.json
    echo [提示] 请重启Docker Desktop应用配置更改
    echo [提示] 重启后重新运行此脚本
    pause
    exit /b 0
)

:: 测试镜像拉取
echo [信息] 测试镜像拉取...
docker pull hello-world >nul 2>&1
if %errorlevel% equ 0 (
    echo [成功] 镜像拉取成功！
) else (
    echo [警告] 镜像拉取失败，尝试使用国内镜像...
)

:: 显示当前配置
echo [信息] 当前Docker配置：
if exist "%USERPROFILE%\.docker\daemon.json" (
    type "%USERPROFILE%\.docker\daemon.json"
) else (
    echo 使用默认配置
)

echo.
echo [成功] 解决方案完成！
echo [提示] 现在可以使用以下命令启动服务：
echo.
echo 1. 使用国内镜像源：
echo    docker-compose -f docker-compose-china.yml up -d
echo.
echo 2. 或者先拉取镜像再启动：
echo    docker-compose pull
echo    docker-compose up -d
echo.
echo 3. 手动拉取镜像：
echo    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/mysql:8.0
echo    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/redis:7-alpine

echo.
pause